import java.util.LinkedList;


public class Move {
	Disk d;
	LinkedList<Disk> from;
	LinkedList<Disk> to;
	
	Move(LinkedList<Disk> from, LinkedList<Disk> to, Disk d){
		this.d = d; this.from = from; this.to = to;
		
	}
	
	Move(LinkedList<Disk> from, Disk d){
		this.from = from;
		this.d = d;
	}
	
	public Disk getD() {
		return d;
	}

	public LinkedList<Disk> getFrom() {
		return from;
	}

	public LinkedList<Disk> getTo() {
		return to;
	}
	
	
	public String toString() {
		//return "Moved Disk:"+d.getSize()+" From: "+from+" To: "+to;
		return "Disk:"+d.getSize()+" "+from+">"+to;
	}
	public boolean equals(Move other){
		return (this.getD().getSize() == other.getD().getSize() &&
				this.getFrom().toString().equals(other.getTo().toString()) &&
				this.getTo().toString().equals(other.getTo().toString()));
	}

	public void setD(Disk d) {
		this.d = d;
	}

	public void setFrom(LinkedList<Disk> from) {
		this.from = from;
	}

	public void setTo(LinkedList<Disk> to) {
		this.to = to;
	}
}
